package com.sunforum.forum.domain;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sunforum.common.annotation.Excel;
import com.sunforum.common.core.domain.BaseEntity;

/**
 * pc_贴子/文章对象 pc_article
 * 
 * @author sunforum
 * @date 2025-04-23
 */
@Data
public class PcArticle extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 栏目id */
    @Excel(name = "栏目id")
    private Long columnId;

    /** 栏目ids */
    private String columnIds;

    /** 帖子标题 */
    @Excel(name = "标题")
    private String articleTitle;

    /** 帖子表情，英文状态逗号分隔 */
    private String articleTags;

    /** 帖子作者 id */
    @Excel(name = "帖子作者")
    private String articleAuthorid;

    /** 帖子回帖计数 */
    @Excel(name = "回帖数")
    private Long articleCommentCount;

    /** 帖子浏览计数 */
    @Excel(name = "浏览数")
    private Long articleViewCount;

    /** 帖子正文内容 */
    @Excel(name = "正文内容")
    private String articleContent;

    /** 帖子打赏区内容 */
    @Excel(name = "打赏区内容")
    private String articleRewardContent;

    /** 帖子打赏积分 */
    @Excel(name = "打赏积分")
    private Long articleRewardPoint;

    /** 帖子访问路径 */
    @Excel(name = "访问路径")
    private String articlePermaLink;

    /** 帖子最新回帖时间 */
    @Excel(name = "最新回帖时间")
    private Long articleLatestCmtTime;

    /** 帖子最新回帖者用户名 */
    @Excel(name = "最新回帖者用户名")
    private String articleLatestCmterName;

    /** 帖子随机数，用于快速选择随机帖子 */
    @Excel(name = "随机数，用于快速选择随机帖子")
    private Long articleRandomDouble;

    /** 帖子是否可回帖 */
    @Excel(name = "是否可回帖")
    private String articleCommenTable;

    /** 0：Markdown */
    @Excel(name = "Markdown")
    private Long articleEditorType;

    /** 0：正常，1：封禁，2：锁定 */
    @Excel(name = "状态")
    private Long articleStatus;

    /** 0：普通帖子，1：机要，2：同城广播，3：思绪 */
    @Excel(name = "类型")
    private Long articleType;

    /** 帖子感谢计数 */
    @Excel(name = "感谢数")
    private Long articleThankCnt;

    /** 帖子点赞计数 */
    @Excel(name = "点赞数")
    private Long articleGoodCnt;

    /** 帖子点踩计数 */
    @Excel(name = "点踩数")
    private Long articleBadCnt;

    /** 帖子收藏计数 */
    @Excel(name = "收藏数")
    private Long articleCollectCnt;

    /** 帖子关注计数 */
    @Excel(name = "关注数")
    private Long articleWatchCnt;

    /** 帖子 Reddit 算法评分 */
    @Excel(name = "算法评分")
    private Long redditScore;

    /** 发帖 IP 所在城市 */
    @Excel(name = "发帖所在城市")
    private String articleCity;

    /** 发帖 IP */
    @Excel(name = "发帖IP")
    private String articleIp;

    /** User-Agent */
    @Excel(name = "User-Agent")
    private String articleUa;

    /** 帖子置顶时间 */
    @Excel(name = "置顶时间")
    private Long articleStick;

    /** 0：公开，1：匿名 */
    @Excel(name = "作者状态")
    private Long articleAnonymous;

    /** 0：非优选，1：优选 */
    @Excel(name = "优选状态")
    private Long articlePerfect;

    /** 0：允许不登录浏览， 1：登录才可浏览 */
    @Excel(name = "浏览状态")
    private Long articleAnonymousView;

    /** 帖子语音文件 URL */
    @Excel(name = "帖子语音文件 URL")
    private String articleAudioUrl;

    /** 问答悬赏积分（仅作用于问答帖） */
    @Excel(name = "问答悬赏积分", readConverterExp = "仅=作用于问答帖")
    private Long articleQnaOfferPoint;

    /** 周/月邮件推送优先级 */
    @Excel(name = "周/月邮件推送优先级")
    private Long articlePushOrder;

    /** 帖子首图地址 */
    @Excel(name = "帖子首图地址")
    private String articleImgUrl;

    /** 帖子是否在列表展示：0 展示，1 不展示  */
    @Excel(name = "列表展示状态")
    private Long articleShowInList;

    /** ai总结 */
    @Excel(name = "ai总结")
    private String aiSummary;

    /** 删除标志（0代表存在 1代表删除） */
    private String delFlag;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setColumnId(Long columnId) 
    {
        this.columnId = columnId;
    }

    public Long getColumnId() 
    {
        return columnId;
    }

    public void setColumnIds(String columnIds) 
    {
        this.columnIds = columnIds;
    }

    public String getColumnIds() 
    {
        return columnIds;
    }

    public void setArticleTitle(String articleTitle) 
    {
        this.articleTitle = articleTitle;
    }

    public String getArticleTitle() 
    {
        return articleTitle;
    }

    public void setArticleTags(String articleTags) 
    {
        this.articleTags = articleTags;
    }

    public String getArticleTags() 
    {
        return articleTags;
    }

    public void setArticleAuthorid(String articleAuthorid) 
    {
        this.articleAuthorid = articleAuthorid;
    }

    public String getArticleAuthorid() 
    {
        return articleAuthorid;
    }

    public void setArticleCommentCount(Long articleCommentCount) 
    {
        this.articleCommentCount = articleCommentCount;
    }

    public Long getArticleCommentCount() 
    {
        return articleCommentCount;
    }

    public void setArticleViewCount(Long articleViewCount) 
    {
        this.articleViewCount = articleViewCount;
    }

    public Long getArticleViewCount() 
    {
        return articleViewCount;
    }

    public void setArticleContent(String articleContent) 
    {
        this.articleContent = articleContent;
    }

    public String getArticleContent() 
    {
        return articleContent;
    }

    public void setArticleRewardContent(String articleRewardContent) 
    {
        this.articleRewardContent = articleRewardContent;
    }

    public String getArticleRewardContent() 
    {
        return articleRewardContent;
    }

    public void setArticleRewardPoint(Long articleRewardPoint) 
    {
        this.articleRewardPoint = articleRewardPoint;
    }

    public Long getArticleRewardPoint() 
    {
        return articleRewardPoint;
    }

    public void setArticlePermaLink(String articlePermaLink) 
    {
        this.articlePermaLink = articlePermaLink;
    }

    public String getArticlePermaLink() 
    {
        return articlePermaLink;
    }



    public void setArticleLatestCmtTime(Long articleLatestCmtTime) 
    {
        this.articleLatestCmtTime = articleLatestCmtTime;
    }

    public Long getArticleLatestCmtTime() 
    {
        return articleLatestCmtTime;
    }

    public void setArticleLatestCmterName(String articleLatestCmterName) 
    {
        this.articleLatestCmterName = articleLatestCmterName;
    }

    public String getArticleLatestCmterName() 
    {
        return articleLatestCmterName;
    }

    public void setArticleRandomDouble(Long articleRandomDouble) 
    {
        this.articleRandomDouble = articleRandomDouble;
    }

    public Long getArticleRandomDouble() 
    {
        return articleRandomDouble;
    }

    public void setArticleCommenTable(String articleCommenTable) 
    {
        this.articleCommenTable = articleCommenTable;
    }

    public String getArticleCommenTable() 
    {
        return articleCommenTable;
    }

    public void setArticleEditorType(Long articleEditorType) 
    {
        this.articleEditorType = articleEditorType;
    }

    public Long getArticleEditorType() 
    {
        return articleEditorType;
    }

    public void setArticleStatus(Long articleStatus) 
    {
        this.articleStatus = articleStatus;
    }

    public Long getArticleStatus() 
    {
        return articleStatus;
    }

    public void setArticleType(Long articleType) 
    {
        this.articleType = articleType;
    }

    public Long getArticleType() 
    {
        return articleType;
    }

    public void setArticleThankCnt(Long articleThankCnt) 
    {
        this.articleThankCnt = articleThankCnt;
    }

    public Long getArticleThankCnt() 
    {
        return articleThankCnt;
    }

    public void setArticleGoodCnt(Long articleGoodCnt) 
    {
        this.articleGoodCnt = articleGoodCnt;
    }

    public Long getArticleGoodCnt() 
    {
        return articleGoodCnt;
    }

    public void setArticleBadCnt(Long articleBadCnt) 
    {
        this.articleBadCnt = articleBadCnt;
    }

    public Long getArticleBadCnt() 
    {
        return articleBadCnt;
    }

    public void setArticleCollectCnt(Long articleCollectCnt) 
    {
        this.articleCollectCnt = articleCollectCnt;
    }

    public Long getArticleCollectCnt() 
    {
        return articleCollectCnt;
    }

    public void setArticleWatchCnt(Long articleWatchCnt) 
    {
        this.articleWatchCnt = articleWatchCnt;
    }

    public Long getArticleWatchCnt() 
    {
        return articleWatchCnt;
    }

    public void setRedditScore(Long redditScore) 
    {
        this.redditScore = redditScore;
    }

    public Long getRedditScore() 
    {
        return redditScore;
    }

    public void setArticleCity(String articleCity) 
    {
        this.articleCity = articleCity;
    }

    public String getArticleCity() 
    {
        return articleCity;
    }

    public void setArticleIp(String articleIp) 
    {
        this.articleIp = articleIp;
    }

    public String getArticleIp() 
    {
        return articleIp;
    }

    public void setArticleUa(String articleUa) 
    {
        this.articleUa = articleUa;
    }

    public String getArticleUa() 
    {
        return articleUa;
    }

    public void setArticleStick(Long articleStick) 
    {
        this.articleStick = articleStick;
    }

    public Long getArticleStick() 
    {
        return articleStick;
    }

    public void setArticleAnonymous(Long articleAnonymous) 
    {
        this.articleAnonymous = articleAnonymous;
    }

    public Long getArticleAnonymous() 
    {
        return articleAnonymous;
    }

    public void setArticlePerfect(Long articlePerfect) 
    {
        this.articlePerfect = articlePerfect;
    }

    public Long getArticlePerfect() 
    {
        return articlePerfect;
    }

    public void setArticleAnonymousView(Long articleAnonymousView) 
    {
        this.articleAnonymousView = articleAnonymousView;
    }

    public Long getArticleAnonymousView() 
    {
        return articleAnonymousView;
    }

    public void setArticleAudioUrl(String articleAudioUrl) 
    {
        this.articleAudioUrl = articleAudioUrl;
    }

    public String getArticleAudioUrl() 
    {
        return articleAudioUrl;
    }

    public void setArticleQnaOfferPoint(Long articleQnaOfferPoint) 
    {
        this.articleQnaOfferPoint = articleQnaOfferPoint;
    }

    public Long getArticleQnaOfferPoint() 
    {
        return articleQnaOfferPoint;
    }

    public void setArticlePushOrder(Long articlePushOrder) 
    {
        this.articlePushOrder = articlePushOrder;
    }

    public Long getArticlePushOrder() 
    {
        return articlePushOrder;
    }

    public void setArticleImgUrl(String articleImgUrl) 
    {
        this.articleImgUrl = articleImgUrl;
    }

    public String getArticleImgUrl() 
    {
        return articleImgUrl;
    }

    public void setArticleShowInList(Long articleShowInList) 
    {
        this.articleShowInList = articleShowInList;
    }

    public Long getArticleShowInList() 
    {
        return articleShowInList;
    }

    public void setAiSummary(String aiSummary) 
    {
        this.aiSummary = aiSummary;
    }

    public String getAiSummary() 
    {
        return aiSummary;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("columnId", getColumnId())
            .append("columnIds", getColumnIds())
            .append("articleTitle", getArticleTitle())
            .append("articleTags", getArticleTags())
            .append("articleAuthorid", getArticleAuthorid())
            .append("articleCommentCount", getArticleCommentCount())
            .append("articleViewCount", getArticleViewCount())
            .append("articleContent", getArticleContent())
            .append("articleRewardContent", getArticleRewardContent())
            .append("articleRewardPoint", getArticleRewardPoint())
            .append("articlePermaLink", getArticlePermaLink())

            .append("articleLatestCmtTime", getArticleLatestCmtTime())
            .append("articleLatestCmterName", getArticleLatestCmterName())
            .append("articleRandomDouble", getArticleRandomDouble())
            .append("articleCommenTable", getArticleCommenTable())
            .append("articleEditorType", getArticleEditorType())
            .append("articleStatus", getArticleStatus())
            .append("articleType", getArticleType())
            .append("articleThankCnt", getArticleThankCnt())
            .append("articleGoodCnt", getArticleGoodCnt())
            .append("articleBadCnt", getArticleBadCnt())
            .append("articleCollectCnt", getArticleCollectCnt())
            .append("articleWatchCnt", getArticleWatchCnt())
            .append("redditScore", getRedditScore())
            .append("articleCity", getArticleCity())
            .append("articleIp", getArticleIp())
            .append("articleUa", getArticleUa())
            .append("articleStick", getArticleStick())
            .append("articleAnonymous", getArticleAnonymous())
            .append("articlePerfect", getArticlePerfect())
            .append("articleAnonymousView", getArticleAnonymousView())
            .append("articleAudioUrl", getArticleAudioUrl())
            .append("articleQnaOfferPoint", getArticleQnaOfferPoint())
            .append("articlePushOrder", getArticlePushOrder())
            .append("articleImgUrl", getArticleImgUrl())
            .append("articleShowInList", getArticleShowInList())
            .append("aiSummary", getAiSummary())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
